Skip to content

try to do macos latest#692

Merged
AlexInLog merged 1 commit into
v2from
macos-latest-v2
Dec 3, 2024
Merged

try to do macos latest#692
AlexInLog merged 1 commit into
v2from
macos-latest-v2

Conversation

@AlexInLog

@AlexInLog AlexInLog commented Dec 3, 2024

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Updated CI configuration to consistently use Qt version 6.2 across multiple jobs.
    • Changed macOS job specifications to utilize the latest macOS environment.
  • Bug Fixes

    • Ensured compatibility and stability by specifying the Qt version in the installation steps for relevant jobs.

@coderabbitai

coderabbitai Bot commented Dec 3, 2024

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The pull request introduces updates to the GitHub Actions workflows in two files: .github/workflows/analyzers.yml and .github/workflows/ci v2.yml. The modifications include specifying the Qt version as "6.2.*" in multiple jobs to ensure compatibility and consistency across the build and testing processes. Additionally, the macOS job specifications have been updated to use the latest macOS environment. The overall structure and logic of the workflows remain unchanged.

Changes

File Change Summary
.github/workflows/analyzers.yml Added version: "6.2.*" to Install Qt step in jobs pvs and sonarcloud_and_coverage.
.github/workflows/ci v2.yml Updated macOS job specification to macos-latest and set Qt version to "6.2.*" in jobs cache_deps, sanitize, tests, and use_rpp_as_package.

Possibly related PRs

  • Change sonarcloud analysis method #652: The changes in this PR also involve modifications to the .github/workflows/analyzers.yml file, specifically related to the sonarcloud_and_coverage job, which indicates a direct connection to the main PR's updates in the same workflow file.

🐰 In the meadow, we hop and play,
With Qt version set, we work all day.
From pvs to coverage, we build with cheer,
On macOS latest, our path is clear.
Hopping along, our workflows align,
With every change, our code will shine! 🌟


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6342cc3 and fb34269.

📒 Files selected for processing (2)
  • .github/workflows/analyzers.yml (2 hunks)
  • .github/workflows/ci v2.yml (6 hunks)
🔇 Additional comments (3)
.github/workflows/analyzers.yml (1)

32-32: LGTM! Consistent Qt version pinning

The addition of explicit Qt version "6.2.*" across both jobs ensures build reproducibility and consistency with other workflow files.

Also applies to: 106-106

.github/workflows/ci v2.yml (2)

62-62: LGTM! Consistent Qt version specification

The Qt version "6.2.*" is consistently specified across all jobs, ensuring build reproducibility and matching the version in analyzers.yml.

Also applies to: 104-104, 183-183, 264-264


27-27: Verify compatibility with macos-latest

The change from macos-12 to macos-latest aligns with the PR objective. However, we should verify that the latest macOS runner is compatible with the build requirements.

Also applies to: 142-142

✅ Verification successful

Let me try a different approach to verify the macOS compatibility by checking the workflow file content and recent changes.


Let me check the build requirements and dependencies to ensure compatibility with macOS.


Let me try one final check to verify the build configuration and dependencies.


Based on the gathered information, I can now provide the final response:

Using macos-latest is safe for this workflow

The change from macos-12 to macos-latest is safe because:

  • The workflow uses standard setup steps (Python) that are compatible across macOS versions
  • The CMake configuration handles Apple-specific compilation through proper conditionals
  • No macOS-specific dependencies or setup steps that would be affected by the runner version
  • The build matrix is consistently configured across all jobs
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the current macOS version on the latest runner and recent workflow runs

# Get current macOS version on latest runner
echo "Current macOS version on latest runner:"
sw_vers 2>/dev/null || echo "Command not available in current context"

# Check recent workflow runs for any macOS-related failures
gh run list --workflow="ci v2.yml" --limit 10 --json conclusion,name | \
  jq '.[] | select(.name | contains("macos")) | {name: .name, conclusion: .conclusion}'

Length of output: 348


Script:

#!/bin/bash
# Check the workflow file content and recent changes related to macOS
echo "Current macOS configuration in workflow:"
rg "macos-" .github/workflows/ci\ v2.yml -A 1 -B 1

echo -e "\nRecent changes to macOS configuration:"
git log -p --grep="macos" -- ".github/workflows/ci v2.yml" | head -n 20

echo -e "\nCheck if there are any specific macOS dependencies or requirements:"
rg "macos|darwin" -i --type yaml .github/workflows/

Length of output: 948


Script:

#!/bin/bash
# Check build requirements and dependencies
echo "Checking build requirements:"
fd "CMakeLists.txt|requirements.txt|package.json|*.cmake" --type f --exec head -n 50 {}

echo -e "\nChecking for platform-specific code or requirements:"
rg "if.*darwin|if.*apple|APPLE|DARWIN" --type cmake
rg "process.platform.*darwin|process.platform.*mac" --type js

echo -e "\nChecking CI workflow steps for macOS:"
rg "if: runner.os == 'macOS'|if: matrix.os == 'macos'" .github/workflows/

Length of output: 1453


Script:

#!/bin/bash
# Check CMake and build configuration
echo "Checking CMake configuration:"
fd -e cmake -e txt --type f -x grep -l "APPLE\|DARWIN\|MAC" {} \; -exec head -n 50 {}

echo -e "\nChecking workflow steps and dependencies:"
cat .github/workflows/ci\ v2.yml | grep -A 5 -B 5 "macos-"

echo -e "\nChecking if there are any macOS-specific setup steps:"
rg "setup-" .github/workflows/ci\ v2.yml -A 2 -B 2

Length of output: 1963


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions

github-actions Bot commented Dec 3, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 299.64 ns 1.85 ns 1.87 ns 0.99 1.85 ns
Subscribe empty callbacks to empty observable via pipe operator 302.46 ns 1.85 ns 1.85 ns 1.00 1.85 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 683.11 ns 0.31 ns 0.31 ns 1.00 0.31 ns
from array of 1 - create + subscribe + current_thread 1028.35 ns 3.42 ns 3.42 ns 1.00 3.71 ns
concat_as_source of just(1 immediate) create + subscribe 2238.68 ns 113.77 ns 114.49 ns 0.99 121.63 ns
defer from array of 1 - defer + create + subscribe + immediate 718.95 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2115.29 ns 59.19 ns 59.39 ns 1.00 59.23 ns
interval - interval + take(3) + subscribe + current_thread 3010.37 ns 32.46 ns 32.44 ns 1.00 33.95 ns
from array of 1 - create + as_blocking + subscribe + new_thread 31266.38 ns 29377.86 ns 28224.48 ns 1.04 28782.45 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 42562.73 ns 52708.70 ns 52435.10 ns 1.01 52539.60 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3534.65 ns 140.59 ns 135.54 ns 1.04 152.04 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1082.96 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 850.85 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 986.15 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 879.24 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1246.08 ns 0.31 ns 0.32 ns 0.98 0.31 ns
immediate_just(1,2)+last()+subscribe 901.56 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1159.75 ns 17.91 ns 24.38 ns 0.73 19.15 ns
immediate_just(1,2,3)+element_at(1)+subscribe 856.19 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 271.93 ns 1.54 ns 1.54 ns 1.00 1.54 ns
current_thread scheduler create worker + schedule 373.23 ns 4.94 ns 4.94 ns 1.00 4.32 ns
current_thread scheduler create worker + schedule + recursive schedule 808.32 ns 62.21 ns 60.75 ns 1.02 60.82 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 870.08 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 895.73 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2354.63 ns 149.17 ns 138.50 ns 1.08 174.85 ns
immediate_just+buffer(2)+subscribe 1503.18 ns 13.59 ns 13.89 ns 0.98 18.22 ns
immediate_just+window(2)+subscribe + subscsribe inner 2374.74 ns 1357.03 ns 1289.64 ns 1.05 1340.10 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 845.14 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 861.95 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1991.01 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3387.99 ns 136.23 ns 147.17 ns 0.93 174.56 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3690.54 ns 156.72 ns 159.89 ns 0.98 164.60 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 129.74 ns 131.97 ns 0.98 153.98 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3515.37 ns 406.29 ns 355.88 ns 1.14 404.18 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2133.83 ns 213.66 ns 212.95 ns 1.00 212.41 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3105.22 ns 229.66 ns 236.87 ns 0.97 253.05 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 34.48 ns 35.41 ns 14.79 ns 2.40 15.64 ns
subscribe 100 observers to publish_subject 200024.40 ns 15738.13 ns 16014.13 ns 0.98 18030.50 ns
100 on_next to 100 observers to publish_subject 27039.38 ns 17635.24 ns 17179.79 ns 1.03 19492.40 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1424.74 ns 13.28 ns 13.27 ns 1.00 25.28 ns
basic sample with immediate scheduler 1398.87 ns 5.55 ns 5.55 ns 1.00 19.14 ns
mix operators with disposables and without disposables 6344.25 ns 1398.29 ns 1380.10 ns 1.01 1857.81 ns
single disposable and looooooong indentity chain 23716.69 ns 1006.72 ns 990.07 ns 1.02 5131.80 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 911.55 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2047.17 ns 982.96 ns 1013.02 ns 0.97 997.25 ns
create(on_error())+retry(1)+subscribe 582.65 ns 109.92 ns 109.92 ns 1.00 113.65 ns

ci-macos

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 425.30 ns 1.04 ns 0.70 ns 1.48 1.00 ns
Subscribe empty callbacks to empty observable via pipe operator 391.73 ns 0.99 ns 0.70 ns 1.42 0.97 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 760.16 ns 0.34 ns 0.23 ns 1.47 0.35 ns
from array of 1 - create + subscribe + current_thread 1013.48 ns 4.66 ns 31.62 ns 0.15 4.23 ns
concat_as_source of just(1 immediate) create + subscribe 2326.70 ns 181.17 ns 315.33 ns 0.57 177.65 ns
defer from array of 1 - defer + create + subscribe + immediate 796.34 ns 0.34 ns 0.23 ns 1.43 0.34 ns
interval - interval + take(3) + subscribe + immediate 2073.23 ns 54.77 ns 114.76 ns 0.48 56.11 ns
interval - interval + take(3) + subscribe + current_thread 2540.75 ns 31.52 ns 95.94 ns 0.33 32.87 ns
from array of 1 - create + as_blocking + subscribe + new_thread 26196.29 ns 24401.50 ns 81457.31 ns 0.30 138479.00 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 31002.68 ns 33461.61 ns 88639.18 ns 0.38 29445.83 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3206.84 ns 196.89 ns 365.93 ns 0.54 196.85 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1146.66 ns 0.33 ns 0.24 ns 1.39 0.34 ns
immediate_just+filter(true)+subscribe 849.69 ns 0.33 ns 0.23 ns 1.43 0.38 ns
immediate_just(1,2)+skip(1)+subscribe 1106.63 ns 0.33 ns 0.23 ns 1.43 0.34 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 866.26 ns 0.34 ns 0.47 ns 0.72 0.34 ns
immediate_just(1,2)+first()+subscribe 1375.05 ns 0.33 ns 0.23 ns 1.43 0.34 ns
immediate_just(1,2)+last()+subscribe 1017.00 ns 0.57 ns 0.24 ns 2.37 1.01 ns
immediate_just+take_last(1)+subscribe 1199.78 ns 0.33 ns 0.23 ns 1.43 0.34 ns
immediate_just(1,2,3)+element_at(1)+subscribe 858.42 ns 0.34 ns 0.23 ns 1.43 0.34 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 314.61 ns 1.08 ns 0.93 ns 1.15 1.01 ns
current_thread scheduler create worker + schedule 530.61 ns 4.41 ns 32.34 ns 0.14 11.72 ns
current_thread scheduler create worker + schedule + recursive schedule 749.54 ns 67.34 ns 199.81 ns 0.34 68.41 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 852.04 ns 2.60 ns 4.20 ns 0.62 2.77 ns
immediate_just+scan(10, std::plus)+subscribe 987.93 ns 0.34 ns 0.47 ns 0.72 0.36 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2105.74 ns 206.59 ns 375.66 ns 0.55 217.06 ns
immediate_just+buffer(2)+subscribe 1009.63 ns 16.48 ns 63.19 ns 0.26 17.97 ns
immediate_just+window(2)+subscribe + subscsribe inner 1990.57 ns 1064.96 ns 2399.26 ns 0.44 1136.75 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 835.99 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 851.10 ns 0.34 ns 0.23 ns 1.43 0.41 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 1930.34 ns 2.17 ns 4.91 ns 0.44 1.78 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2952.67 ns 215.60 ns 420.19 ns 0.51 224.23 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3255.65 ns 214.05 ns 411.06 ns 0.52 223.97 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 217.88 ns 452.01 ns 0.48 224.08 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3106.44 ns 536.30 ns 929.76 ns 0.58 550.13 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2104.40 ns 350.38 ns 830.56 ns 0.42 367.23 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 2996.48 ns 344.41 ns 647.10 ns 0.53 359.10 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 44.29 ns 20.09 ns 49.32 ns 0.41 22.42 ns
subscribe 100 observers to publish_subject 137682.25 ns 16451.61 ns 41087.04 ns 0.40 16921.57 ns
100 on_next to 100 observers to publish_subject 34001.32 ns 14787.56 ns 20892.27 ns 0.71 21811.51 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1284.11 ns 12.37 ns 68.76 ns 0.18 27.39 ns
basic sample with immediate scheduler 1258.22 ns 5.40 ns 18.74 ns 0.29 14.11 ns
mix operators with disposables and without disposables 12444.77 ns 1529.56 ns 3292.46 ns 0.46 1810.51 ns
single disposable and looooooong indentity chain 30784.92 ns 3016.51 ns 1621.74 ns 1.86 4483.24 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1009.58 ns 0.33 ns 0.23 ns 1.43 0.35 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 3560.12 ns 2714.04 ns 4163.59 ns 0.65 3406.64 ns
create(on_error())+retry(1)+subscribe 720.85 ns 179.05 ns 277.73 ns 0.64 195.25 ns

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 273.26 ns 0.64 ns 0.63 ns 1.01 0.63 ns
Subscribe empty callbacks to empty observable via pipe operator 274.65 ns 0.63 ns 0.63 ns 1.00 0.63 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 563.37 ns 0.31 ns 0.31 ns 1.01 0.31 ns
from array of 1 - create + subscribe + current_thread 773.29 ns 4.01 ns 4.01 ns 1.00 4.02 ns
concat_as_source of just(1 immediate) create + subscribe 2344.04 ns 135.30 ns 128.32 ns 1.05 135.64 ns
defer from array of 1 - defer + create + subscribe + immediate 773.49 ns 0.31 ns 0.31 ns 1.00 0.31 ns
interval - interval + take(3) + subscribe + immediate 2215.14 ns 58.31 ns 58.26 ns 1.00 58.31 ns
interval - interval + take(3) + subscribe + current_thread 3200.52 ns 30.86 ns 30.86 ns 1.00 31.50 ns
from array of 1 - create + as_blocking + subscribe + new_thread 30276.60 ns 28008.46 ns 27977.50 ns 1.00 30779.23 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 36162.61 ns 32814.23 ns 33816.21 ns 0.97 36547.56 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 3666.39 ns 146.59 ns 146.78 ns 1.00 146.75 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1169.42 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+filter(true)+subscribe 838.87 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+skip(1)+subscribe 1078.13 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 868.73 ns 0.62 ns 0.62 ns 1.00 0.31 ns
immediate_just(1,2)+first()+subscribe 1356.03 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2)+last()+subscribe 990.40 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+take_last(1)+subscribe 1176.93 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just(1,2,3)+element_at(1)+subscribe 856.98 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 279.76 ns 1.54 ns 1.54 ns 1.00 1.54 ns
current_thread scheduler create worker + schedule 401.58 ns 4.01 ns 4.02 ns 1.00 4.02 ns
current_thread scheduler create worker + schedule + recursive schedule 847.18 ns 54.91 ns 55.00 ns 1.00 55.18 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 850.34 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+scan(10, std::plus)+subscribe 967.58 ns 0.31 ns 0.31 ns 1.00 0.31 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 2250.14 ns 140.38 ns 140.42 ns 1.00 136.99 ns
immediate_just+buffer(2)+subscribe 1521.48 ns 13.59 ns 13.58 ns 1.00 13.90 ns
immediate_just+window(2)+subscribe + subscsribe inner 2417.06 ns 909.56 ns 944.11 ns 0.96 919.84 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 833.36 ns - - 0.00 -
immediate_just+take_while(true)+subscribe 839.00 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 2008.90 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3291.43 ns 160.36 ns 161.06 ns 1.00 156.28 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3772.99 ns 142.27 ns 142.24 ns 1.00 140.88 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 140.86 ns 140.85 ns 1.00 139.89 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3325.45 ns 375.20 ns 377.50 ns 0.99 378.88 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 2238.44 ns 195.76 ns 194.72 ns 1.01 194.29 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 3237.26 ns 221.76 ns 221.41 ns 1.00 225.40 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 51.84 ns 17.70 ns 17.49 ns 1.01 18.53 ns
subscribe 100 observers to publish_subject 210645.50 ns 16219.38 ns 16169.02 ns 1.00 16233.40 ns
100 on_next to 100 observers to publish_subject 43006.67 ns 23498.60 ns 23529.20 ns 1.00 20633.73 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1292.98 ns 11.12 ns 11.11 ns 1.00 20.39 ns
basic sample with immediate scheduler 1312.08 ns 5.86 ns 5.86 ns 1.00 6.79 ns
mix operators with disposables and without disposables 6506.21 ns 1185.43 ns 1163.51 ns 1.02 1489.17 ns
single disposable and looooooong indentity chain 27962.81 ns 1233.21 ns 1246.28 ns 0.99 4595.01 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 999.30 ns 0.31 ns 0.31 ns 1.00 0.31 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 2223.44 ns 1181.17 ns 1160.81 ns 1.02 1170.81 ns
create(on_error())+retry(1)+subscribe 674.77 ns 146.42 ns 139.35 ns 1.05 147.03 ns

ci-windows

General

name rxcpp rpp prev rpp ratio rpp no optimization
Subscribe empty callbacks to empty observable 562.48 ns 2.16 ns 1.85 ns 1.17 2.16 ns
Subscribe empty callbacks to empty observable via pipe operator 582.81 ns 2.16 ns 1.85 ns 1.17 2.16 ns

Sources

name rxcpp rpp prev rpp ratio rpp no optimization
from array of 1 - create + subscribe + immediate 1162.21 ns 5.86 ns 5.86 ns 1.00 5.36 ns
from array of 1 - create + subscribe + current_thread 1417.48 ns 15.74 ns 15.75 ns 1.00 16.27 ns
concat_as_source of just(1 immediate) create + subscribe 3739.61 ns 165.17 ns 164.78 ns 1.00 175.40 ns
defer from array of 1 - defer + create + subscribe + immediate 1170.99 ns 5.55 ns 5.55 ns 1.00 5.24 ns
interval - interval + take(3) + subscribe + immediate 3650.36 ns 139.64 ns 141.04 ns 0.99 141.82 ns
interval - interval + take(3) + subscribe + current_thread 5041.99 ns 60.05 ns 62.51 ns 0.96 62.96 ns
from array of 1 - create + as_blocking + subscribe + new_thread 120814.29 ns 112866.67 ns 112854.55 ns 1.00 110537.50 ns
from array of 1000 - create + as_blocking + subscribe + new_thread 129987.50 ns 129388.89 ns 132811.11 ns 0.97 128350.00 ns
concat_as_source of just(1 immediate) and just(1,2 immediate)create + subscribe 5305.96 ns 200.82 ns 200.53 ns 1.00 202.53 ns

Filtering Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take(1)+subscribe 1811.37 ns 19.42 ns 19.73 ns 0.98 20.36 ns
immediate_just+filter(true)+subscribe 1590.82 ns 18.50 ns 18.81 ns 0.98 21.41 ns
immediate_just(1,2)+skip(1)+subscribe 1706.97 ns 17.90 ns 18.50 ns 0.97 20.38 ns
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1353.47 ns 20.68 ns 23.46 ns 0.88 24.99 ns
immediate_just(1,2)+first()+subscribe 2368.06 ns 18.20 ns 17.28 ns 1.05 18.51 ns
immediate_just(1,2)+last()+subscribe 1445.95 ns 19.14 ns 18.51 ns 1.03 22.23 ns
immediate_just+take_last(1)+subscribe 2013.18 ns 63.84 ns 64.71 ns 0.99 66.48 ns
immediate_just(1,2,3)+element_at(1)+subscribe 1618.61 ns 20.97 ns 21.91 ns 0.96 22.85 ns

Schedulers

name rxcpp rpp prev rpp ratio rpp no optimization
immediate scheduler create worker + schedule 532.65 ns 6.13 ns 4.94 ns 1.24 4.32 ns
current_thread scheduler create worker + schedule 656.67 ns 11.65 ns 11.18 ns 1.04 11.12 ns
current_thread scheduler create worker + schedule + recursive schedule 1085.83 ns 100.26 ns 100.56 ns 1.00 98.55 ns

Transforming Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+map(v*2)+subscribe 1310.78 ns 18.80 ns 18.81 ns 1.00 21.29 ns
immediate_just+scan(10, std::plus)+subscribe 1423.86 ns 20.98 ns 20.98 ns 1.00 19.36 ns
immediate_just+flat_map(immediate_just(v*2))+subscribe 3810.16 ns 183.85 ns 181.42 ns 1.01 220.62 ns
immediate_just+buffer(2)+subscribe 2295.40 ns 63.46 ns 64.05 ns 0.99 69.31 ns
immediate_just+window(2)+subscribe + subscsribe inner 4004.96 ns 1286.57 ns 1292.80 ns 1.00 1294.16 ns

Conditional Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+take_while(false)+subscribe 1303.98 ns 17.57 ns 17.58 ns 1.00 19.13 ns
immediate_just+take_while(true)+subscribe 1302.35 ns 18.51 ns 18.81 ns 0.98 20.98 ns

Utility Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(1)+subscribe_on(immediate)+subscribe 3130.28 ns 11.10 ns 11.11 ns 1.00 11.10 ns

Combining Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5176.74 ns 200.67 ns 200.49 ns 1.00 226.44 ns
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5730.00 ns 185.22 ns 185.70 ns 1.00 193.48 ns
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 191.62 ns 188.17 ns 1.02 198.10 ns
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6135.48 ns 435.09 ns 434.23 ns 1.00 452.50 ns
immediate_just(1) + zip(immediate_just(2)) + subscribe 3862.09 ns 517.60 ns 520.39 ns 0.99 521.06 ns
immediate_just(immediate_just(1), immediate_just(1)) + concat() + subscribe 4865.38 ns 326.69 ns 326.12 ns 1.00 340.57 ns

Subjects

name rxcpp rpp prev rpp ratio rpp no optimization
publish_subject with 1 observer - on_next 36.33 ns 19.81 ns 19.87 ns 1.00 20.61 ns
subscribe 100 observers to publish_subject 252660.00 ns 26713.16 ns 27747.50 ns 0.96 26823.08 ns
100 on_next to 100 observers to publish_subject 55518.18 ns 32658.06 ns 32656.25 ns 1.00 38813.33 ns

Scenarios

name rxcpp rpp prev rpp ratio rpp no optimization
basic sample 1888.91 ns 97.44 ns 96.81 ns 1.01 113.56 ns
basic sample with immediate scheduler 1890.57 ns 67.17 ns 69.02 ns 0.97 83.20 ns
mix operators with disposables and without disposables 9904.13 ns 1933.79 ns 1903.65 ns 1.02 2690.70 ns
single disposable and looooooong indentity chain 26861.54 ns 1689.35 ns 1744.43 ns 0.97 6453.46 ns

Aggregating Operators

name rxcpp rpp prev rpp ratio rpp no optimization
immediate_just+reduce(10, std::plus)+subscribe 1428.23 ns 19.12 ns 19.43 ns 0.98 20.09 ns

Error Handling Operators

name rxcpp rpp prev rpp ratio rpp no optimization
create(on_next(1), on_error())+on_error_resume_next(immediate_just(2)))+subscribe 1906.98 ns 348.15 ns 352.38 ns 0.99 364.69 ns
create(on_error())+retry(1)+subscribe 1498.71 ns 139.63 ns 141.50 ns 0.99 140.39 ns

@sonarqubecloud

sonarqubecloud Bot commented Dec 3, 2024

Copy link
Copy Markdown

@AlexInLog AlexInLog marked this pull request as ready for review December 3, 2024 18:56
@AlexInLog AlexInLog merged commit a670827 into v2 Dec 3, 2024
@AlexInLog AlexInLog deleted the macos-latest-v2 branch December 3, 2024 18:57
@codecov

codecov Bot commented Dec 3, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.61%. Comparing base (6342cc3) to head (fb34269).
Report is 2 commits behind head on v2.

Additional details and impacted files
@@           Coverage Diff           @@
##               v2     #692   +/-   ##
=======================================
  Coverage   98.61%   98.61%           
=======================================
  Files         156      156           
  Lines        9786     9786           
=======================================
  Hits         9650     9650           
  Misses        136      136           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant